#include <stdio.h>
//运算符

// 算术运算符
void add(int a , int b) {
    printf("相加结果 %d \n",a + b);
}

void subtract(int a,int b) {
    printf("相减结果 %d \n",a - b);
}

void multiplication(int a,int b) {
    printf("相乘结果 %d \n",a * b);
}

void except(int a,int b) {
    printf("a/b结果 %d \n",a / b);
}

void mod(int a,int b) {
    printf("ab余数 结果 %d \n",a % b);
}

// 关系运算符
void compare(int a,int b) {
    if( a == b )
    {
        printf("Line 1 - %d 等于 %d\n" ,a ,b);
    }
    else
    {
        printf("Line 1 - %d 不等于 %d\n"  ,a ,b);
    }
    if ( a < b )
    {
        printf("Line 2 - %d 小于 %d\n"  ,a ,b);
    }
    else
    {
        printf("Line 2 - %d不小于 %d\n"  ,a ,b);
    }
    if ( a > b )
    {
        printf("Line 3 - %d 大于 %d\n"  ,a ,b);
    }
    else
    {
        printf("Line 3 - %d 不大于 %d\n"  ,a ,b);
    }
    if ( a <= b )
    {
        printf("Line 4 - %d 小于或等于 %d\n"  ,a ,b);
    }
    if ( b >= a )
    {
        printf("Line 5 - %d 大于或等于 %d\n"  ,a ,b);
    }
}

// 逻辑运算符
void logic_operation(int a,int b) {
    if ( a && b )
    {
        printf("Line %d - %d 条件为真\n", a , b  );
    }
    if ( a || b )
    {
        printf("Line %d - %d 条件为真\n", a , b );
    }
    if ( !a) {
        printf("Line a  - %d 条件为真\n" , a);
    }
    if ( !b) {
        printf("Line b - %d 条件为真\n" , b);
    }
}

// 位运算
void bit_operation(int a,int b) {
    int c = 0;
    c = a & b;
    printf("位运算 & - %d\n",c);
    c = a | b;
    printf("位运算 | - %d\n",c);
    c = a ^ b;
    printf("位运算 ^ - %d\n",c);
    c = ~b;
    printf("位运算 ~ b- %d\n",c);
    c = ~a;
    printf("位运算 ~ a- %d\n",c);
    c = a << b;
    printf("位运算 << - %d\n",c);
    c = a >> b;
    printf("位运算 >> - %d\n",c);
}

// 赋值运算符
void val_assignment(int a,int b) {
    int c;
    c = a = b;
    printf("b的值给了a a %d \n",c);
    c = a += b;
    printf("a=a+b得值 a %d \n",c);
    c = a -= b;
    printf("a=a-b得值 a %d \n",c);
    c = a *= b;
    printf("a=a*b得值 a %d \n",c);
    c = a %= b;
    printf("a=a%b得值 a %d \n",c);
    c = a <<= b;
    printf("a=a<<=b得值 a %d \n",c);
    c = a >>= b;
    printf("a=a>>=b得值 a %d \n",c);
    c = a &= b;
    printf("a=a&b得值 a %d \n",c);
    c = a |= b;
    printf("a=a|b得值 a %d \n",c);
    c = a ^= b;
    printf("a=a^b得值 a %d \n",c);
}

// 三元运算
void three_yuan(int a,int b) {
    short c;
    c = (a==1) ? a : b;
    printf(" ? 真 : 假 %d \n",c);
    c = sizeof a;
    printf("返回变量的大小 %d \n", c);
    int* ptr;
    ptr = &a;
    printf("a变量地址 %d \n", ptr);
    ptr = &b;
    printf("b变量地址 %d \n", ptr);

    printf("指向一个变量。*ptr %d \n", ptr);
}

